package cn.wolfcode.redis.utils;

import cn.wolfcode.utils.Consts;
import lombok.Getter;

/**
 * 枚举类的特点:
 * 1. 枚举类的构造器是私有的
 * 2. 当枚举类定义完成,它的实例个数是固定的
 * 3. 其他操作和普通类一样
 */
@Getter
public enum RedisKey {
    /**
     * 用于定义登录token的key
     */
    USER_LOGIN_TOKEN("user_login_token", Consts.USER_INFO_TOKEN_VAI_TIME * 60L);

    private String prefix;
    private Long time;

    private RedisKey(String prefix, Long time) {
        this.prefix = prefix;
        this.time = time;
    }

    public String join(String... values) {
        StringBuilder sb = new StringBuilder(80);
        sb.append(this.prefix);
        for (String value : values) {
            sb.append(":").append(value);
        }
        return sb.toString();
    }

}
